The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
After a computer program has been released for sale to the public, and consumers have purchased and installed the program on their computer, updates to the computer program may become available. Such updates may fix errors in the previously released program, or add enhanced features that were not present in the previously released program. Such updates are often supplied to consumers in the form of another customized program that applies changes to the binary code of the previously released program. Often, the changes applied to the binary code do not completely replace the binary code, but only alter portions thereof. The process of applying updates to portions of a previously released program, instead of replacing the program entirely, is called “patching,” and the updates that are applied are called “patches.”
Unfortunately, patching programs are sometimes imperfect. Patching programs do not always account for various circumstances that might prevent a patch from being applied completely. Under some circumstances, for various possible reasons, a patching program may fail after beginning to apply a patch, but before finishing. The patching program may be unable to resume. As a result, the target program to which the patch is being applied may be only partially updated. A target program that has been only partially updated might behave erratically, and might stop working altogether. This is clearly an undesirable outcome.